High Availability (HA) Service
------------------------------
High Availability (HA) service for IPoIB interfaces is provided via the
ipoibtools package. Ipoibtools currently includes a perl script ipoib_ha.pl
and two executables, arpingib and mcasthandle.

The HA service operates as follows: A user-level daemon runs in background to
detect failure of the primary IPoIB interface.  If such a failure is detected
(e.g. port down), the daemon configures the secondary IPoIB interface with the
configuration parameters of the primary IPoIB interface (so that the secondary
interface assumes the IP identity of the primary interface).

Note:
    The secondary IPoIB interface will be set down when the HA service starts.

Enabling the HA service
-----------------------
To enable HA service automatically (upon bootup of the driver),
perform the following steps:

1. Edit file '/etc/infiniband/openib.conf' as follows:

    IPOIBHA_ENABLE=yes
    PRIMARY_IPOIB_DEV=ib0
    SECONDARY_IPOIB_DEV=ib1

2. Run '/etc/init.d/openibd restart' to restart the driver.

The HA service may also be activated manually, via the following command:

    ipoib_ha.pl -p ${PRIMARY_IPOIB_DEV} -s ${SECONDARY_IPOIB_DEV} \
         --with-arping --with-multicast


Usage: ./ipoib_ha.pl [-p <primary IPoIB interface>] 
                     [-s <secondary IPoIB interface>] 
                     [--with-arping] [--with-multicast] [-v]

  -p                  - primary IPoIB interface (default: ib0)
  -s                  - secondary IPoIB interface (default: ib1)
  --with-arping       - use modified arping utility to send unsolicited ARP REPLY
  --with-multicast    - support applications that are using multicast
  -v                  - verbose output


Reporting bugs
==============

Bugs should be reported to the OpenIB mailing list
<openib-general@openib.org>.  In your bug report, please include:

 * Information about your system:
   - Linux distribution and version
   - Linux kernel and version
   - ... any other relevant information

 * How to reproduce the bug.

 * If the bug is a crash, the exact output printed out when the crash
   occurred, including any kernel messages produced.

Submitting patches
==================

Patches should also be submitted to the OpenIB mailing list
<openib-general@openib.org>.  Please use unified diff form (the -u
option to GNU diff), and include a good description of what your patch
does and why it should be applied.  If your patch fixes a bug, please
make sure to describe the bug and how your fix works.

Please include a change to the ChangeLog file (in standard GNU
changelog format) as part of your patch.

Make sure that your contribution can be licensed under the same
license as the original code you are patching, and that you have all
necessary permissions to release your work.
